With advancement in technologies and increasing demands of people for networking, network applications such as cloud service and big data have been developed accordingly. Traditionally, a switch includes both a control plane and a data plane. When a transmission path of data packets is confirmed, if a network state is in conditions of congestion or failure, the path cannot be instantly changed by the traditional switch. In other words, functions provided by the switch cannot be easily and dynamically changed based on demands of a user. Therefore, functions and behaviors of the network are usually restricted by the functions provided by the switch. As such, in order to add new functions and features to the existing network, purchasing a new machine with new functions is often the only option.
In recent years, for solving aforesaid problems, concepts and technologies of a software-defined network (SDN) have been proposed and received wide attention and research. FIG. 1 illustrates an architecture of the software-defined network. Referring to FIG. 1, in the architecture of the SDN, the network is divided into three planes, so as to separate the control plane of the network from the data plane. Said three planes include an application plane 110, a control plane 120 and a data plane 130. The application plane 110 allows the user to compose advanced network applications (e.g., applications 110-1 to 110-n) on a controller, and obtain data and services provided by the control plane 120 through a Northbound API 102 provided by a SDN controller 100. For instance, the user is able to obtain information regarding traffic of switches 130-1 to 130-n through the Northbound API 102, and perform a traffic load balance control according to such information. The control plane 120 provides basic network services, handles related information of the entire network, and communicates with the switches 130-1 to 130-n of the data plane 130 through a Southbound API 104, so as to control the behaviors of the entire network and a flow direction of the packets. Further, the data plane 130 is a part where the switches transfer the data packets. The plurality of switches 130-1 to 130-n are connected together to constitute a network topology, and the switches transfer the packets according to commands of the control plane.
Under the SDN environment, data and packets are transmitted by a flow as the unit. In order to improve overall transmission performance, the SDN controller 100 is capable of adjusting the transmission path of the data packets according to the network state. However, after the transmission path of the data packets is changed, problems such packet loss of the original transmission path and out-of-ordering packets at a receiving end may occur. FIG. 2A to FIG. 2C are schematic diagrams illustrating the packet loss of original transmission path and the out-of-ordering packets at the receiving end after changing the transmission path of the data packets under the SDN environment. Referring to FIG. 2A, a software-defined network system 200 includes a plurality of network equipments (e.g., the network equipments may be a server device and a plurality of switches). In a normal condition as depicted in FIG. 2A, data packets 20 are transmitted by a plurality of relay nodes according to a path 210. For instance, the data packets 20 are transmitted according to Transmission Control Protocol (TCP), and a window size for transmitting the packets is 5. In other words, data packets 20-1 and data packets 20-2 are sequentially and completely transmitted from a first node 202 to a second node 204 through the path 210. Referring to FIG. 2B, if the SDN controller 100 changes the transmission path of the data packets to a path 220 when a network congestion is detected and a device at a transmitting end has not yet received a notification (which indicates that the data packets has been received) from a device at the receiving end (as shown in FIG. 2B), a congestion control at back end is triggered to reduce the window size for transmitting packets. For example, the window size is changed from 5 to 2. Accordingly, TCP performance may be reduced. In addition, a part of packets among data packets 22-1 transmitted to the second node 204 may be lost on the path 210 which is the path before changing path, resulting in a phenomenon of data packets loss. In other words, the data packets originally on an old path (i.e., the path 210) are not completely transmitted. Referring to FIG. 2C, when the SDN controller 100 intends to re-transmit the lost data packets (i.e., data packets 24-2) to the second node 204, because the data packets on a new path (i.e., the path 220) have already been transmitted to the second node 204 prior to the data packets on the old path (i.e., the path 210), the problem of the out-of-ordering data packets thus occurs.
Accordingly, it is one of the major subjects in the industry as how to prevent the data packets loss and the out-of-ordering data packets in the case where the transmission path of the packets is instantly adjusted according to the network state.